#ifndef TEXT_H
#define TEXT_H

#include <string>
#include <map>
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>
#include <render/output/shader.h>
#include <render/UI/text/font.h>

class Text {
public:
	Text ( std::string &str, float scale, glm::vec2 pos, glm::vec3 color, uint32_t matrix_w, uint32_t matrix_h );
	Text ( Shader text_sh, std::string str );

	void Print ();
	void Print ( std::string str );

private:
	Shader* m_shader = new Shader ( "./res/text" );

	Font m_font;

	GLfloat   m_scale;
	glm::vec2 m_pos;
	glm::vec3 m_color;
	float     m_transparency = 1.0f;

	GLuint VAO, VBO;

	std::string m_text;

	glm::mat4 m_projection;
};

#endif
